/**
 * 
 */
package edu.com.gestionstock.dao;

import edu.com.gestionstock.bean.Dvd;
import edu.com.gestionstock.bean.Livres;
import edu.com.gestionstock.bean.Utilisateur;
import edu.com.gestionstock.dao.DAO;
import edu.com.gestionstock.dao.bo.DvdDAO;
import edu.com.gestionstock.dao.bo.LivresDAO;
import edu.com.gestionstock.dao.bo.UtilisateursDAO;

import java.sql.SQLException;
import java.util.ArrayList;


/**
 * @author pascal
 *
 */
public class mainTest {

	/**
	 * @param args
	 */
	/*public void testUtilisateur(){
		Utilisateur user = new Utilisateur();
		user.setNom("nom");
		user.setPrenom("prenom");
		user.setTelephone("TELEPHONE");
		
	}*/
	public static void main(String[] args) {
		Dvd dvd = new Dvd();
		dvd.setQuantiteStock(0);
		dvd.setQuantiteLoue(0);
		dvd.setRealisateur("realisateur");
		dvd.setTitre("titre");
		//dvd.setId(1);
		DAO<Dvd> DvdDao = new DvdDAO();
		
		DvdDao.create(dvd);
		dvd.setTitre("titre");
		DvdDao.update(dvd);
		
		//DvdDao.delete(dvd);
		//System.out.println(DvdDao.find(dvd.getId()));
		//System.out.println(dvd);
		//DvdDao.delete(dvd);
		//System.out.println(DvdDao.find(dvd.getId()))
		ArrayList<Dvd> arrDvd=new ArrayList<Dvd>();
		//dvd.setTitre("titre");
		//arrDvd=DvdDao.findList(dvd);
		arrDvd=DvdDao.findList("ti");
		for (Dvd e : arrDvd){
			System.out.println(e);
		}
		//DvdDao.delete(dvd);
		
		/*
		 * Reset de la table
		 */
		/*
		try {
			DvdDao.reset();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		*/
		
		/**
		 * Test des livres
		 */
		Livres livre = new Livres();
		livre.setAuteur("auteur");
		livre.setQuantiteLoue(0);
		livre.setQuantiteStock(10);
		livre.setTitre("titre du livre");
		DAO<Livres> LvDao = new LivresDAO();
		ArrayList<Livres> arrLivre = new ArrayList<Livres>();
		 /* 
		  * 1 Create
		  */
		LvDao.create(livre);
		// affichage:
		arrLivre=LvDao.findList(livre);
		
		/* 
		  * 2 update
		  */
		livre.setAuteur("Nouveau auteur");
		LvDao.update(livre);
		arrLivre=LvDao.findList(livre);
		
		/* 
		  * 3 Search
		  */
		arrLivre=LvDao.findList(livre);
		for (Livres lv : arrLivre){
			System.out.println(lv);
		}
		
		/* 
		  * 4 Delete
		  */
		LvDao.delete(livre);
		arrLivre=LvDao.findList(livre);
		
		/*
		 * Truncate table
		 */
		try {
			LvDao.reset();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
		/**
		 * Test des Utilsateurs
		 */
		Utilisateur util01 = new Utilisateur();
		util01.setNom("Nom utilisateur");
		util01.setPrenom("Marcel");
		util01.setAdresse("rue machin,8");
		util01.setTelephone("+32 nn/nNN NN NN");		
		
		DAO<Utilisateur>UtilDao = new UtilisateursDAO() {
		};
		
		ArrayList<Utilisateur> arrUtilisateur = new ArrayList<Utilisateur>();
		 /* 
		  * 1 Create
		  */
		UtilDao.create(util01);
		
		// affichage:
		arrUtilisateur=UtilDao.findList(util01);
		
		/* 
		  * 2 update
		  */
		util01.setNom("nouveau nom");
		
		UtilDao.update(util01);
		arrUtilisateur=UtilDao.findList(util01);
		
		/* 
		  * 3 Search
		  */
		arrUtilisateur=UtilDao.findList(util01);
		for (Utilisateur util : arrUtilisateur){
			System.out.println(util);
		}
		
		/* 
		  * 4 Delete
		  */
		UtilDao.delete(util01);
		arrUtilisateur=UtilDao.findList(util01);
		
		/*
		 * Truncate table
		 */
		
		try {
			UtilDao.reset();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
	}

}
